import { PreloadingStrategy, Route } from "@angular/router";
import { Observable } from 'rxjs';
import "rxjs/add/observable/of";

/**
 * 自定义路由策略
 *     技巧01：只有在根路由中才可以配置路由懒加载
 *     技巧02：需要将自定义的懒加载类在主模块中的provider进行声明后才可以在根路由中使用，否则会报错
 */
export class MyProloadingStrategy implements PreloadingStrategy {

    preload(route: Route, fn: () => Observable<any>): Observable<any> {
        return route.data && route.data.preload ? fn() : Observable.of(null);
    }

    // preload(route: Route, fn: () => Observable<any>): Observable<any>{
    //     return route.data&&route.data.preload?fn():Observable.of(null);
    // }
    
}